利用nginx/apache代理wss 实现 小程序 端口 反向代理 |
您所在的位置:网站首页 › nginx 进行反向代理 › 利用nginx/apache代理wss 实现 小程序 端口 反向代理 |
除了用Workerman自身的SSL,也可以利用nginx/apache作为wss代理转发给workerman 我就是栽在这大坑里(nginx/apache代理wss,workerman部分就不要设置ssl,否则将无法连接,两个方法2选1)官方推荐用nginx/apache代理wss 如果是微信小程序,要添加合法域名 格式:wss://域名 结尾不要加/,可以:端口
nginx配置参考 前提条件及准备工作: 1、已经安装nginx,版本不低于1.3 2、假设Workerman监听的是8282端口(websocket协议) 3、已经申请了证书(pem/crt文件及key文件)放在了/etc/nginx/conf.d/ssl下 4、打算利用nginx开启443端口对外提供wss代理服务(端口可以根据需要修改) 5、nginx一般作为网站服务器运行着其它服务,为了不影响原来的站点使用,这里使用地址 域名/wss 作为wss的代理入口。也就是客户端连接地址为 wss://域名/wss nginx配置类似如下: # websockets 友情提示可以放在伪静态那,安全点 location /wss { proxy_pass http://127.0.0.1:9527; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; }测试链接地址 wss://域名/wss,/wss就是对应反向代理的location /wss wss://域名/wss 利用apache代理wss也可以利用apache作为wss代理转发给workerman(注意如使用apache代理SSL,则workerman部分千万不要设置ssl,否则将无法连接)。 准备工作: 1、GatewayWorker 监听 8282 端口(websocket协议) 2、已经申请了ssl证书, 放在了/server/httpd/cert/ 下 3、利用apache转发443端口至指定端口8282 4、httpd-ssl.conf 已加载 5、openssl 已安装 启用 proxy_wstunnel_module 模块 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so配置SSL及代理 #extra/httpd-ssl.conf DocumentRoot "/网站/目录" ServerName 域名 # Proxy Config SSLProxyEngine on ProxyRequests Off ProxyPass /wss ws://127.0.0.1:8282/wss ProxyPassReverse /wss ws://127.0.0.1:8282/wss # 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 证书公钥配置 SSLCertificateFile /server/httpd/cert/your.pem # 证书私钥配置 SSLCertificateKeyFile /server/httpd/cert/your.key # 证书链配置, SSLCertificateChainFile /server/httpd/cert/chain.pem测试 wss://域名/wss |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |